<?php
class CriaderosController extends AppController
{
    public $helpers = array(
        'Html',
        'Form',
        'Session',
        'Js');
    public $uses = array(
        'Criadero',
        'Propietario',
        'Tipo',
        'Sucursale',
        'Raza',
        'CriaderosRaza',
        'Departamento',
        'Condicioneshigienica',
        'Condicionejemplare',
        'Instalacione',
        'Inspeccioncriadero',
        'Observacionesinspeccione');
    public $components = array('Session', 'Fechasconvert');
    public $layout = 'kennel';

    /* function beforeFilter(){
    $this->checksession();
    $this->permisosCriaderos();

    }*/
    function index()
    {

        $this->paginate = array('Criadero' => array('conditions' => array('Criadero.estado' => true),
                    'limit' => 30));
        //$tipos = $this->TipoCriadero->find('list',array('fields'=>array('TipoCriadero.tipo')));
        //debug($this->paginate('Criadero'));exit;
        $this->set('criaderos', $this->paginate('Criadero'));
        //  $this->set('tipos', $tipos);
    }
    function insertar()
    {
        if (!empty($this->data)):

            $sucursales = $this->Sucursale->find('first', array('conditions' => array('Sucursale.departamento_id' =>
                        $this->data['Criadero']['departamento_id'])));
            $this->request->data['Criadero']['sucursal_id'] = $sucursales['Sucursale']['id'];
            if (!empty($this->data['Criadero']['fecha_desde'])) {
                $fecha = $this->Fechasconvert->doFormatfecha($this->data['Criadero']['fecha_desde']);
                $this->request->data['Criadero']['fecha_desde'] = $fecha;
            }
            //debug($this->data);exit;
            $this->Criadero->create();
            if ($this->Criadero->saveAll($this->data)) {
                $this->Session->setFlash('Criadero registrado nr' . $this->Criadero->id);
                $this->redirect(array('action' => 'index'), null, true);
            } else {
                $this->Session->setFlash('No se pudo registrar!!!');
            }
        endif;
        $propietarios = $this->Propietario->find('list', array('fields' => array('Propietario.id',
                    'Propietario.nombre')));
        $tipos = $this->Tipo->find('list', array('fields' => array('Tipo.id',
                    'Tipo.nombre')));

        $razas = $this->Raza->find('list', array('fields' => array('Raza.id',
                    'Raza.nombre')));
        $opt = array('1' => 'Alta', '0' => 'Baja');
        $departamentos = $this->Departamento->find('list', array('fields' => array('Departamento.id',
                    'Departamento.nombre')));
        $this->set(compact('opt', 'propietarios', 'tipos', 'razas', 'departamentos'));
    }
    function editar($id = null, $paso = null)
    {

        $this->Criadero->id = $id;
        if (!$id) {
            $this->Session->setFlash('No existe tal registro');
            $this->redirect(array('action' => 'index'), null, true);
        }
        if (empty($this->data)) {
            $propietarios = $this->Propietario->find('list', array('fields' => array('Propietario.id',
                        'Propietario.nombre')));
            $tipos = $this->Tipo->find('list', array('fields' => array('Tipo.id',
                        'Tipo.nombre')));
            $sucursales = $this->Sucursale->find('list', array('fields' => array('Sucursale.id',
                        'Sucursale.nombre')));
            $razas = $this->Raza->find('list', array('fields' => array('Raza.id',
                        'Raza.nombre')));
            $opt = array('1' => 'Alta', '0' => 'Baja');
            $departamentos = $this->Departamento->find('list', array('fields' => array('Departamento.id',
                        'Departamento.nombre')));

            $this->data = $this->Criadero->read(); //find(array('id' => $id));

            $fecha = $this->Fechasconvert->doRevert($this->data['Criadero']['fecha_desde']);
            $observaciones = $this->data['Observacionesinscripcioncriadero'];
            $this->set(compact('opt', 'propietarios', 'tipos', 'sucursales', 'razas',
                'departamentos', 'observaciones', 'id', 'fecha'));
        } else {
            //$i=0;
            
           
            if ($paso == 1) {
                foreach ($this->data['Observacionesinscripcioncriadero'] as $observacion) {
                    if (!empty($observacion['select'])) {
                        $nombre = $observacion['observacion'];
                        $this->request->data['Criadero']['nombre'] = $nombre;
                    }
                    //$i++;
                    //$this->request->data['Criadero']['nombre'] = $nombre;
                }
                 //debug($this->data);exit;
            }


            $sucursales = $this->Sucursale->find('first', array('conditions' => array('Sucursale.departamento_id' =>
                        $this->data['Criadero']['departamento_id'])));
            $this->request->data['Criadero']['sucursal_id'] = $sucursales['Sucursale']['id'];
            //debug($this->data['Criadero']['fecha_desde']);exit;
            if (!empty($this->data['Criadero']['fecha_desde'])) {
                $fecha = $this->Fechasconvert->doFormatfecha($this->data['Criadero']['fecha_desde']);
                $this->request->data['Criadero']['fecha_desde'] = $fecha;
            }
            $this->request->data['Criadero']['id'] = $id;

            //debug($this->data);exit;
            if ($this->Criadero->saveAll($this->data)) {
                $this->Session->setFlash('Los datos fueron modificados');
                $this->redirect(array('action' => 'index'), null, true);
            } else {
                $this->Session->setFlash('no se pudo modificar!!');
            }
        }


    }
    function baja($id = null)
    {
        $this->Criadero->id = $id;
        if (!$id) {
            $this->Session->setFlash('No se pudo dar de baja');
            $this->redirect(array('action' => 'index'), null, true);
        }
        $estado = 0;
        $this->request->data['Criadero']['estado'] = $estado;
        if ($this->Criadero->save($this->data)) {
            $this->Session->setFlash('Los datos fueron modificados');
            $this->redirect(array('action' => 'index'), null, true);
        } else {
            $this->Session->setFlash('no se pudo modificar!!');
        }
    }

    function alta($id = null)
    {
        $this->Criadero->id = $id;
        if (!$id) {
            $this->Session->setFlash('No se pudo dar de baja');
            $this->redirect(array('action' => 'index'), null, true);
        }
        $estado = 1;
        $this->request->data['Criadero']['estado'] = $estado;
        if ($this->Criadero->save($this->data)) {
            $this->Session->setFlash('Los datos fueron modificados');
            $this->redirect(array('action' => 'index'), null, true);
        } else {
            $this->Session->setFlash('no se pudo modificar!!');
        }

    }
    function eliminar($id = null)
    {
        if (!$id) {
            $this->Session->setFlash('id Invalida para reclamo');
            $this->redirect(array('action' => 'index'), null, true);
        }
        if ($this->Criadero->delete($id)) {
            $this->Session->setFlash('El Criadero  ' . $id . ' fue borrado');
            $this->redirect(array('action' => 'index'), null, true);
        }
    }
    function imprime()
    {
        $this->layout = 'ajax';
    }
    function buscar()
    {
        // debug($this->data);
        $data = $this->data['dato'];
        $data1 = $this->data['estado'];
        $tipo = $this->data['tipo'];

        if ($this->data['estado'] != null) {
            if ($data != null) {
                $options = array('Criadero.estado' => $data1, 'OR' => array(

                        'Criadero.nombre LIKE' => '%' . $data . '%',
                        'Criadero.nombre LIKE' => '%' . $data . '%',
                        'Criadero.Criadero LIKE' => '%' . $data . '%',
                        'Criadero.ci LIKE' => '%' . $data . '%',
                        'Criadero.correo LIKE' => '%' . $data . '%'));
            } else {
                $options = array('Criadero.estado' => $data1);

            }

        } elseif ($tipo != null) {
            if ($data != null) {
                $options = array('TipoCriadero.id' => $tipo, 'OR' => array(

                        'Criadero.nombre LIKE' => '%' . $data . '%',
                        'Criadero.nombre LIKE' => '%' . $data . '%',
                        'Criadero.Criadero LIKE' => '%' . $data . '%',
                        'Criadero.ci LIKE' => '%' . $data . '%',
                        'Criadero.correo LIKE' => '%' . $data . '%'));
            } else {
                $options = array('TipoCriadero.id' => $tipo);

            }

        } else {
            $options = array('OR' => array(
                    'Criadero.nombre LIKE' => '%' . $data . '%',
                    'Criadero.nombre LIKE' => '%' . $data . '%',
                    'Criadero.Criadero LIKE' => '%' . $data . '%',
                    'Criadero.ci LIKE' => '%' . $data . '%',
                    'Criadero.correo LIKE' => '%' . $data . '%'));
        }


        $tipos = $this->TipoCriadero->find('list', array('fields' => array('TipoCriadero.descripcion')));


        $result = $this->Criadero->find('all', array('conditions' => array($options)));
        // debug($result);exit;
        $this->set('tipos', $tipos);
        $this->set('all', $result);
    }
    public function insertaraza($id = null)
    {
        $this->layout = 'sheepit';

        if (!empty($this->data)) {
            $this->CriaderosRaza->create();
            if ($this->CriaderosRaza->saveMany($this->data)) {
                //debug($this->data);exit;
                $this->Session->setFlash('Registro de raza en criadero ' . $id . ' exitosamente');
                $this->redirect(array('action' => 'editaraza', $id), null, true);
            } else {
                $this->Session->setFlash('no se pudo registrar las razas del criadero!!' . $id);
            }
        }
        $razas = $this->Raza->find('list', array('fields' => array('Raza.id',
                    'Raza.nombre')));
        //debug($razas);exit;
        $this->set(compact('razas', 'id'));
    }
    public function ver($id = null)
    {
        $criadero = $this->Criadero->find('first', array('Criadero.id' => $id));
        //debug($criadero);exit;
        $this->set(compact('criadero'));
    }
    function habilitar()
    {
        $this->paginate = array('Criadero' => array('conditions' => array('Criadero.estado' => false),
                    'limit' => 30));
        //$tipos = $this->TipoCriadero->find('list',array('fields'=>array('TipoCriadero.tipo')));
        //debug($this->paginate('Criadero'));exit;
        $this->set('criaderos', $this->paginate('Criadero'));
    }
    function editaraza($id = null)
    {

        $razascria = $this->CriaderosRaza->find('all', array('conditions' => array('CriaderosRaza.criadero_id' =>
                    $id)));
        $razas = $this->Raza->find('list', array('fields' => array('Raza.id',
                    'Raza.nombre')));
        //debug($razascria);exit;
        $this->set(compact('razas', 'razascria', 'id'));
    }
    function editraza($id = null)
    {
        if (!empty($this->data)) {
            //debug($this->data);exit;
            $this->request->data['CriaderosRaza']['id'] = $id;
            if ($this->CriaderosRaza->saveMany($this->data)) {
                $this->Session->setFlash("Registro actualizados");
                $this->redirect(array('action' => 'index'), null, true);
            } else {
                $this->Session->setFlash("No se pudo actualizar");
                $this->redirect(array('action' => 'index'), null, true);
            }
        }
        $razacria = $this->CriaderosRaza->find('first', array('conditions' => array('CriaderosRaza.id' =>
                    $id)));
        $razas = $this->Raza->find('list', array('fields' => array('Raza.id',
                    'Raza.nombre')));
        //debug($razacria);exit;
        $this->set(compact('razas', 'razacria'));
    }
    function eliminaraza($id = null, $idcriaderosraza = null)
    {
        if (!$id) {
            $this->Session->setFlash('id Invalida para eliminar');
            $this->redirect(array('action' => 'index'), null, true);
        }
        if ($this->CriaderosRaza->delete($id)) {
            $this->Session->setFlash('La Raza  ' . $id . ' fue borrada');
            $this->redirect(array('action' => 'editaraza', $idcriaderosraza), null, true);
        }
    }
    function inspeccion($id = null)
    {
        if (!empty($this->data)) {
            $this->request->data['Inspeccioncriadero']['criadero_id'] = $id;
            $fecha = $this->Fechasconvert->doFormatfecha($this->data['Inspeccioncriadero']['fecha_inspeccion']);
            $this->request->data['Inspeccioncriadero']['fecha_inspeccion'] = $fecha;
            if ($this->data['Inspeccioncriadero']['nueva_fecha_inspeccion'] != null) {
                $fecha = $this->Fechasconvert->doFormatfecha($this->data['Inspeccioncriadero']['nueva_fecha_inspeccion']);
                $this->request->data['Inspeccioncriadero']['nueva_fecha_inspeccion'] = $fecha;
            }
            if ($this->data['Inspeccioncriadero']['fecha'] != null) {
                $fecha = $this->Fechasconvert->doFormatfecha($this->data['Inspeccioncriadero']['fecha']);
                $this->request->data['Inspeccioncriadero']['fecha'] = $fecha;
            }
            if ($this->data['Inspeccioncriadero']['fecha_recepcion'] != null) {
                $fecha = $this->Fechasconvert->doFormatfecha($this->data['Inspeccioncriadero']['fecha_recepcion']);
                $this->request->data['Inspeccioncriadero']['fecha_recepcion'] = $fecha;
            }
            //debug($this->data);exit;
            if ($this->Inspeccioncriadero->save($this->data)) {
                $this->Session->setFlash("Registro de inspeccion " . $this->Inspeccioncriadero->
                    id . " guardado");
                $this->redirect(array('action' => 'index'), null, true);
            } else {
                $this->Session->setFlash("Error al registrar la inspeccion");
                $this->redirect(array('action' => 'index'), null, true);
            }
        }
        $criadero = $this->Criadero->find('first', array('conditions' => array('Criadero.id' =>
                    $id)));
        $condicioneshiguienicas = $this->Condicioneshigienica->find('list', array('fields' =>
                array('Condicioneshigienica.id', 'Condicioneshigienica.descripcion')));
        $condicionesjemplares = $this->Condicionejemplare->find('list', array('fields' =>
                array('Condicionejemplare.id', 'Condicionejemplare.descripcion')));
        $instalaciones = $this->Instalacione->find('list', array('fields' => array('Instalacione.id',
                    'Instalacione.descripcion')));
        //debug($criadero);exit;
        $this->set(compact('criadero', 'id', 'instalaciones', 'condicioneshiguienicas',
            'condicionesjemplares'));
    }
    function recomendaciones($id = null)
    {
        if (!empty($this->data)) {
            // debug($this->data);exit;
            $this->Observacionesinspeccione->create();
            if ($this->Observacionesinspeccione->saveAll($this->data)) {
                $this->Session->setFlash("Observaciones de la inspeccion del criadero " . $id .
                    " guardados correctamente");
                $this->redirect(array('action' => 'index'), null, true);
            } else {
                $this->Session->setFlash("No se pudo guardar");
                $this->redirect(array('action' => 'index'), null, true);
            }
        }
        $this->set(compact('id'));
    }
    function verinspeccion($id = null)
    {
        $criadero = $this->Criadero->find('first', array('conditions' => array('Criadero.id' =>
                    $id), 'recursive' => 3));
        $this->set(compact('criadero'));
    }
} //fin class distribetuidorescontroller

?>